package com.mornd.gulimall.member.config;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
import org.springframework.security.crypto.password.PasswordEncoder;

/**
 * @author: mornd
 * @dateTime: 2023/8/18 - 11:06
 */

@Configuration
public class SecurityConfig {

    /**
     * spring cloud discovery 依赖中包含
     * 密码加密
     *
     * 生成随机盐值：每次加密密码时，都会生成一个随机的盐值。
     * 对密码和盐值进行组合：将密码和盐值进行拼接。
     * 进行哈希计算：使用BCrypt哈希函数，根据组合后的密码和盐值进行哈希计算。由于哈希计算的迭代次数比较多（默认是10次），所以这个过程会比较耗时。
     * 生成加密后的密码：将哈希计算的结果与盐值一起存储，作为加密后的密码。
     * @return
     */
    @Bean
    public BCryptPasswordEncoder bCryptPasswordEncoder() {
        return new BCryptPasswordEncoder();
    }
}
